//输入检查
const readlindSync = require('readline-sync');//输入模块
 
module.exports ={
    scanfStudentCheck_Re_studentObj,
    scoreCheck,
    scanfStudentIdCheck
 } 
//这个做偏了，应该只有检测，返回值应该是bool的，现在写的驳杂了。不好
//学生信息检查
function scanfStudentCheck_Re_studentObj(){
    console.log('请输入学生信息（格式：姓名, 学号, 民族, 班级, 学科: 成绩, ...），按回车提交：');
    let studentString = readlindSync.question();
    let studentArray = studentString.split(',');
    let studentObject = {};//用一个对象来存储，原先打算用类来写的，发现还差点
    //随便什么名字都可以，所以不用检查
    if(studentString[0]){studentObject.name = studentArray[0];}
    //学号检查，必须为4位数字啊
    studentObject.id = idCheck(studentArray[1]);
    //民族
    if(studentString[2]){studentObject.ethnic = studentArray[2]};
    //班级检查，两位数字
    studentObject.klass = klassCheck(studentArray[3]);
    //成绩检查函数以及录入
    let scoreArray = studentArray.slice(4); 
    studentObject.score = scoreCheck(scoreArray);
    return studentObject ;
}
//学号检测
function idCheck(idString){
    if(!(/^\d{4}$/).test(idString)){
            console.log("学号为四位数字！");
            return scanfStudentCheck_Re_studentObj().id;
    }else{
        return idString;
    }
}
//班级检测
function klassCheck(klassString){
    if(!(/^\d{2}$/).test(klassString)){
        console.log("班级为2位数！");
        return scanfStudentCheck_Re_studentObj().klass;
    }else{
        return klassString;
    }
}
//成绩检测
function scoreCheck(scoreArray){
    let score = {Math:'0',Chi:'0',Eng:'0',Code:'0'};
    for(let item of scoreArray){
        if((/^\w{1,}[:]\d{1,3}$/).test(item)){
            item = item.split(":");
            if(item[0] === "Math")score.Math = item[1];
            if(item[0] === "Chi")score.Chi = item[1];
            if(item[0] === "Eng")score.Eng = item[1];
            if(item[0] === "Code")score.Code = item[1];
        }else{
            console.log("成绩输入错误");
            return scanfStudentCheck_Re_studentObj().score;
        }
    }
    return score;
}
//成绩查询学号输入检测
function scanfStudentIdCheck(studentIdString){
    let studentIdArray = studentIdString.split(',');
    for(let item of studentIdArray){
        if(!(/^\d{4}$/).test(item)){
            console.log('请按正确的格式输入要打印的学生的学号（格式： 学号, 学号,...）');
            return false;
        }else{
            return true;
        }
    }
    return 0 ;
}
//  let a = "1042,1452,2314";
//  let b = "21,213423";
//  console.log(scanfStudentIdCheck(a));
//   console.log(scanfStudentCheck_Re_studentObj());
